#include <iostream>
// #include <pthread.h>
#include <thread>
#include <unistd.h>

#define ERR_EXIT(m)         \
    do                      \
    {                       \
        perror(m);          \
        exit(EXIT_FAILURE); \
    } while (0)

void hello()
{
    while (true)
    {
        std::cout << "新线程 : " << "pid : " << getpid() << std::endl;
        sleep(1);
    }
}
int main()
{
    std::thread t(hello);
    while (true)
    {
        std::cout << "这是主线程 : " << ", pid : " << getpid() << std::endl;
        sleep(1);
    }
    return 0;
}

// void* threadrun(void* args)
// {
//     const char* name = (const char*)args;
//     while(true)
//     {
//         sleep(1);
//         std::cout << "这是新线程 ,"<< "name : " << name << std::endl;
//         int a = 10;
//         a /= 0;
//     }
//     return nullptr;
// }
// int main()
// {
//     pthread_t tid = 0;
//     // 创建新线程
//     int n = pthread_create(&tid, nullptr, threadrun, (void*)"thread-1");
//     if(n != 0)
//     {
//         ERR_EXIT("pthread_create");
//     }
//     while(true)
//     {
//         std::cout << "这是主线程 : " << ", pid : "<< getpid() << std::endl;
//         sleep(1);
//     }
//     return 0;
// }